Method and system for an automated disambiguation

ABSTRACT

A method and system for automating the disambiguation of search results includes one or more database including a plurality of records, a search engine, and a disambiguation engine. The search engine allows for the searching of one or more of the databases for one or more search terms provided by a caller. The disambiguation engine differentiates between one or more returned records located by the search engine where the returned records satisfy the search terms. Furthermore, the disambiguation engine disambiguates the returned records based on the number of the returned records. The disambiguation engine disambiguates the returned records by providing a direct choice if the number of returned records is below a low threshold, providing a pick list if the number of returned records is between the low threshold and a high threshold, and requesting additional information if the number of returned records is above the high threshold.

RELATED PATENT APPLICATION

This patent application is a co-pending patent application with U.S.patent application Ser. No. 10/285,112, entitled Method and System foran Automated Departure Strategy with inventors John M. Martin et al. andfiled Oct. 31, 2002.

TECHNICAL FIELD OF THE INVENTION

The present invention relates generally to telecommunications systems,and more specifically relates to a method and system for an automateddisambiguation.

BACKGROUND OF THE INVENTION

In order to decrease costs and increase efficiency, telephone companiesare automating directory assistance systems. An early step towardautomation of directory assistance was the use of store and forwardtechnology to assist live operators. A caller was asked for a localityby a pre-recorded prompt. The store and forward system stored acompressed version of the caller's response to the prompt, and brought alive operator onto the line. The operator heard the compressed versionof the response and then completed the remaining dialogue with thecaller to provide a unique telephone number.

With the advent of speech recognition, companies have begun addingspeech recognition capabilities to directory assistance systems.Automated speech recognition recognizes a locality from the caller'sresponse to a prompt for locality. In a typical system, if the speechrecognition is successful, the system prompts the caller for the listingname, puts an operator on the line, populates the operator's workstationdisplay with the recognized locality, and plays a recorded compressedversion of the caller's response to the listing question. The operatorthen conducts the remaining dialogue, searches for the listing, andprovides the unique telephone number to the caller. But directoryassistance is not totally automated and operator involvement is stillrequired in providing the callers telephone numbers.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete understanding of the present embodiments and advantagesthereof may be acquired by referring to the following description takenin conjunction with the accompanying drawings, in which like referencenumbers indicate like features, and wherein:

FIG. 1 depicts a block diagram of an automated directory assistancesystem;

FIG. 2 illustrates a flow diagram of a method for the automateddisambiguation of search results and automated defaulting to an operatorin the directory assistance system;

FIG. 3 depicts a flow diagram of a method for automated disambiguationin greater detail;

FIG. 4 illustrates an example flow diagram of a method for automateddisambiguation by record name; and

FIG. 5 depicts an example flow diagram of a method for automateddisambiguation by record address.

DETAILED DESCRIPTION OF THE INVENTION

Preferred embodiments of the present invention are illustrated in thefigures, like numerals being used to refer to like and correspondingparts of the various drawings.

Telephone companies typically have directory assistance systems allowingfor callers seeking particular telephone information to receive suchinformation. Callers typically call directory assistance to receive atelephone number for a particular person or business or to locate acorresponding name and address for a telephone number. Generally thecaller calls into directory assistance and interacts with a liveoperator. The operator asks the caller various questions such as thelocality (city and state) for the person or business that the callerseeks, the name of the person or business, and possibly the address ofthe person or business. The caller engages in a dialogue with theoperator answering all of the operator's questions until the operatorhas enough information to perform a database search for the desiredtelephone number. If the database search returns one record, theoperator provides the telephone number to the caller either verbally ormore typically by means of a “backend” audio system that utilizes wavefiles or synthesized human speech. If the database search returns morethan one record, the operator asks the caller additional questions inorder to eliminate all but the desired returned record. Once theoperator has determined the desired returned record, the operatorprovides the telephone number to caller.

Operator assisted directory assistance systems, while efficient atlocating the desired record and providing a positive caller experience,are costly to the telephone companies due to the costs involved with theoperator time and man-power required to interact with the callers.Callers expect a quick response when calling directory assistance and donot like to wait or be put on hold. Hence, there must be enoughoperators working at all times of the day to insure that the majority ofcallers can quickly and easily speak with an operator and find thedesired telephone number.

In order to increase efficiency and defray some of the costs associatedwith directory assistance systems, telephone companies have begun toautomate various aspects of the directory assistance systems using avariety of automation techniques. Initially, telephone companies adoptedstore and forward technology to record the response of a caller andplayback the response to an operator. For instance, a prerecorded promptasked a caller for the city and state for the desired telephone number.The caller speaks the city and state and the store and forwardtechnology records the caller's response. The recorded city and state isthen played for the operator and the caller is transferred to theoperator so that the operator can ask the caller additional questionsabout the desired telephone number, perform the search for the telephonenumber, and provide the telephone number to the caller.

Telephone companies further automated directory assistance systems withthe use of speech recognition capabilities. As with store and forward,the directory assistance system uses a prerecorded prompt to ask thecaller for the locality and the caller speaks the city and/or state. Ifthe directory assistance system successfully recognizes and understandsthe caller's utterance, the caller's utterance is recorded and anotherprerecorded prompt plays asking the caller for the listing name. Whenthe caller speaks the listing name, the directory assistance systemrecords the listing name, populates an operator screen with therecognized locality, and plays back to the operator the recorded listingname. The caller is then transferred to the operator where the callerand operator continue the remaining dialogue and the operator performs adatabase search and provides the desired telephone number to the caller.

Typically, the directory assistance systems are not completely automatedbecause the callers must still interact with live operators andoperators still perform the database searches in order to locate thedesired telephone number. In addition, the likelihood of failed speechrecognition requires that the directory assistance systems be capable ofdefaulting to an operator upon such a failure. Generally, the calldefaults to a live operator after a failed attempt at speechrecognition. In addition, further operator and caller involvement isrequired when a database search returns more than one record and theoperator must disambiguate between the returned records so that thecaller receives the desired telephone number.

Telephone companies have attempted to increase the automation byutilizing speech recognition deeper into the operator and callerdialogue. But speech recognition success rates and the callers' opinionstowards speech recognition systems have slowed the automation ofdirectory assistance systems utilizing speech recognition. Typicallywhen the directory assistance system utilizing speech recognition doesnot understand an utterance of the caller, the system asks the caller torepeat the utterance. But callers do not like having to repeatthemselves when interacting with speech recognition systems and quicklygrow frustrated and dissatisfied with directory assistance systems ifthey constantly have to repeat themselves. In addition, if the speechrecognition is not functioning correctly and the call defaults to theoperator, the operator generally does not know what the caller has beentrying to accomplish and must re-ask questions that the caller hasalready answered or attempted to answer when interacting with theautomated system utilizing speech recognition. Therefore, the callerbecomes even more frustrated and dissatisfied because the caller now hasto repeat utterances to the operator.

By contrast, the example embodiment described herein allows for anautomated directory assistance system including automated disambiguationstrategy of search results utilizing speech recognition. The exampleembodiment allows for the disambiguation of returned telephone recordswithout the intervention of a live operator. Time and money is savedbecause operators are no longer required to interact with callers todisambiguate the returned records when more than one record satisfiesone or more search terms provided by the caller with respect to thedesired telephone number. Therefore, employees' and operators' time maybe better utilized in interacting with callers experiencing difficultiesas well as in other revenue generating projects since less man-power isrequired to disambiguate returned records in the directory assistancesystem.

Referring now to FIG. 1, a block diagram depicts directory assistancesystem 10. In the example embodiment, directory assistance system 10 mayinclude respective software components and hardware components, such asprocessor 12, memory 14, input/output ports 16, hard disk drive (HDD) 18including databases 20, 22, and 24, and those components may worktogether via bus 26 to provide the desired functionality. In alternateembodiments, HDD 18 may contain more than three or less than threedatabases. The various hardware and software components may also bereferred to as processing resources. Directory assistance system 10 maybe a personal computer, a server, or any other appropriate computingdevice. Directory assistance system 10 may further include display 28for presenting operator screen 30 and input devices such as a mouse anda keyboard. Directory assistance system 10 also includes search engine32, disambiguation engine 34, track engine 36, and error engine 38,which reside in memory such as HDD 18 and are executable by processor 12through bus 26. Directory assistance system 10 may further include anautomated speech recognition (ASR) engine and a text to speech (TTS)engine that enable directory assistance system 10 to utilize a speechrecognition interface with the callers. The ASR engine allows directoryassistance system 10 to recognize the speech or utterances provided bythe callers in response to prompts while the TTS engine allows directoryassistance system 10 to playback to the callers in prompts variabledata, such as data returned from a database search.

Display 28 presents operator screen 30 which allows for the input ofvarious search terms into directory assistance system 10 toautomatically disambiguate and for automated departure to an operatorupon an error. Shown in FIG. 1 is an example operator screen 30.Operator screen 30 includes seven information fields 40, 42, 44, 46, 48,50, and 52 allowing for the individual input of various specific callerutterances and search terms such as locality (city field 40 and statefield 42), name (last name field 44, first name field 46, business namefield 48, and government name field 50), and address field 52. Inalternate embodiments, operate screen 30 may include more than seven orless than seven information fields and the information fields may be fordifferent information than those shown in FIG. 1.

The callers interface with directory assistance system 10 usingtelephones 56, 58, and 60. Telephones 56, 58, and 60 communicate withdirectory assistance system 10 via network 54 and I/O port 16. Network54 may be a public switched telephone network, the Internet, or anyother appropriate type of communication network. Although threetelephones 56, 58, and 60 are shown in FIG. 1, in alternate embodimentsdirectory assistance system 10 may interface with more than three orless than three telephones.

Directory assistance system 10 allows for the automated searching andreturning of telephone directory information such as telephone numbers,listing names, and listing addresses. Although the example embodiment isdescribed in reference to automated speech recognition as the interfacebetween directory assistance system 10 and the callers, in alternateembodiments the callers may also interface with directory assistancesystem 10 utilizing touch-tone input, a combination of speechrecognition and touch-tone, or any other appropriate method ofinterfacing.

FIG. 2 illustrates a flow diagram of a method for the automateddisambiguation of search results in directory assistance system 10 andautomated defaulting to an operator within directory assistance system10. FIGS. 3, 4, and 5 provide more detail with respect to the automateddisambiguation strategy.

The method begins at step 80 and at step 82 a caller accesses directoryassistance system 10 by calling a telephone number for directoryassistance such as “1+411.” In response to the caller dialing directoryassistance, a dialog with the caller begins between the caller anddirectory assistance system 10 utilizing automated speech recognition.At any step, if the speech recognition is not successful, the calldefaults to a live operator where such defaulting to the operator isdescribed in greater detail below.

At step 84, directory assistance system 10 prompts the caller by playinga prompt asking the caller if the caller is interested in locating atelephone number where the caller has a name, performing a reversedirectory assistance (“RDA”) look-up where the caller has a telephonenumber and wants to determine a corresponding name and address, or ifthe caller is interested in something else. In response to the prompt,the caller speaks a response or utterance depending on the caller'sreason for calling directory assistance. For example, if the caller isinterested in finding a telephone number, the caller says “telephonenumber” in response to the prompt. Whenever the caller responds to anyprompt, track engine 36 tracks and stores the caller's response orutterance in database 24. For example, if at step 84 the caller'sutterance is “telephone number” in response to the prompt, track engine36 stores “telephone number” in database 24.

If at step 84 the caller responds that he is interested in an RDAlook-up, then at step 86 directory assistance system 10 prompts thecaller for the telephone number including area code. The caller speaksthe telephone number and directory assistance system 10 confirms thetelephone number. Once directory assistance system 10 successfullyrecognizes the ten digit telephone number, at step 88 directoryassistance system 10 accesses and searches D1 database 20 in order tolocate a name and address that correspond with the telephone numberprovided by the caller. D1 database 20 is a real world directory ofnames, addresses, and telephone numbers for individuals, businesses, andthe government created and maintained by Nortel Networks Limited.Whenever a search is performed in D1 database 20, the search terms usedto search D1 database 20 have already been successfully recognizedutilizing an ASR engine. Although D1 database 20 is shown withindirectory assistance system 10 in the embodiment of FIG. 2, in alternateembodiment D1 database 20 may be remotely located remotely with respectto directory assistance system 10 and accessed via a network connection.Furthermore, directory assistance system 10 may search other name,address, and telephone number databases in place of or in addition to D1database 20.

If at step 88 directory assistance system 10 locates a correspondingname and address, directory assistance system 10 checks anon-publication list and if the telephone number is not on thenon-publication list provides the name and address to the caller. Thenon-publication list is a list of telephone customers who have paid afee so that their name, address, and telephone number will not be givenout to callers by directory assistance. Before directory assistancesystem 10 provides any telephone information to the caller, directoryassistance system 10 must always first check to see if the informationis for an entity that is on the non-publication list. If the telephonenumber is on the non-publication list, directory assistance system 10informs the caller that the owner of the telephone number has requestedthat their information not be provided and therefore does not providethe corresponding name and address to the caller. If there is nocorresponding name and address, directory assistance system 10 informsthe caller that no name and address matches the telephone numberprovided and directory assistance system 10 may end the call, provide adifferent telephone number, or default to the operator.

If at step 84 the caller wants something else besides a telephone numberor a RDA look-up, track engine 36 tracks and stores the caller'sutterance and then the caller is transferred to a live operator so thatthe operator may assist the caller with the inquiry.

If the caller wants to find a telephone number at step 84, then at step92 the caller is prompted for the locality of the entity for which thecaller seeks the telephone number. Depending on what information numberthe caller calls, the caller may be prompted for both the city and stateor just the city. The caller responds to the prompt for locality byspeaking the city and/or state and track engine 36 tracks and stores thecaller's utterance. At step 94, directory assistance system 10 mustdetermine if the search for the telephone number is going to initiallyproceed through frequency requested database (“FRL”) database 22 usingonly a name provided by the caller or if directory assistance system 10prompts the caller for additional information regarding the type ofentity for the telephone number sought such as residential, business, orgovernment (“RBG”) before searching FRL database 22.

FRL database 22 is a database created and maintained by directoryassistance system 10. FRL database 22 includes telephone listings thatare frequently requested by callers accessing directory assistance.Directory assistance system 10 monitors the records provided to thecallers and how frequently each record is requested by the callers inorder to determine a frequency of request for each record. The recordsrequested the most are stored in FRL database 22 for quick access andthereby allow directory assistance system 10 to quickly and easilyprovide the telephone number to the caller when the caller requestsinformation for a record in FRL database 22. In the embodiment shown inFIG. 2, FRL database 22 is located within directory assistance system10. In alternate embodiments, FRL database 22 may be remotely locatedwith respect to directory assistance system 10 and accessed via anetwork connection.

FRL database 22 may be partitioned with respect to the record type inorder to shorten search times. For example, records for businesses maybe stored in one partition of FRL database 22 while records forgovernment listings may be stored in a different partition of FRLdatabase 22. This allows for quicker search times when search engine 32has the record type as one of the search terms. If search engine 32 islooking for a business listing, search engine 32 searches just thebusiness record partition of FRL database 22 and only searches thebusiness records in FRL database 22. Therefore time is not wastedsearching the government records when directory assistance system 10 isalready aware that the caller is only interested in a telephone numberfor a business entity.

When records are added to FRL database 22, directory assistance system10 adds an indicator to each record to indicate whether the name in therecord is for a family name, a business name, a department name, or anyother appropriate type of name pertaining to a telephone listing. Inaddition, FRL database 22 may only include business and governmentlisting records and not residential listing records due to callersgenerally requesting a telephone number for a business or governmententity when accessing directory assistance and infrequently requesting aresidential telephone number.

Whether directory assistance system 10 follows the FRL route or the RBGroute depends on the goals and level of caller satisfaction desired bythe owner and operator of directory assistance system 10. The RBG routeallows for an additional caller prompt versus the FRL route where theadditional prompt extracts from the caller if the desired telephonenumber is for a business, government office, or residence. With theadditional information, search engine 32 has a narrower search space, aquicker search, and returned records that are more likely to correctlysatisfy the search terms. For example, the caller is prompted forbusiness, residential, or government. If the caller responds “business,”then search engine 32 searches only the business partition of FRLdatabase 22 and does search any of the government or residentialrecords. Typically caller satisfaction decreases with each additionalprompt that the caller has to respond to. Therefore the RBG route tradeslower caller satisfaction for quicker and more accurate searches.

The FRL route, on the other hand, offers one less prompt versus the RBGroute which correlates to greater caller satisfaction but less accuratesearching. The FRL route prompts the caller for the desired name andbegins a search for records matching the provided name without askingthe caller if the name is for a business, government office, or aresidence. Because the FRL route includes one less prompt than the RBGroute, search engine 32 has less search terms to search with (name onlyand no entity type) and therefore the search space is much broader thanthe search space in the RBG route. For example, search engine 32searches both the business and government partitions of FRL database 22for the name provided by the caller. The larger search space and fewersearch terms result in a greater chance of returning a returned recordthat does not correctly satisfy the search terms. The FRL route and RBGroute allow for owners and operators of directory assistance systems tocustomize their directory assistance systems with respect to theircallers and business goals based on caller satisfaction levels, searchtimes, and accuracy of searches.

If at step 94 directory assistance system 10 follows the FRL route, thenat step 96 the caller is prompted for the name of the entity for whichthe caller desires the telephone number. Track engine 36 stores thecaller's utterance regarding the name and at step 98 search engine 32,using the name provided by the caller as well as the localityinformation provided by the caller at step 92 as search terms, searchesFRL database 22 for any records that satisfy the name and localityprovided by the caller.

At step 100, search engine 32 returns a number of records that satisfythe search the terms. The number of returned records can be zero, one,or more than one where a returned record is a record satisfying thesearch terms including a single name and single telephone number. If areturned record includes a name followed by departments or divisionseach having a unique telephone number, then that returned record isconsidered as more than one returned record. For example, if a searchfor “Steve's Grocery” returns the following record, the returned recordfor “Steve's Grocery” is considered as more than one returned recordbecause of the multiple names and telephone numbers.

Steve's Grocery 549 Bull Creek 512-555-2522 Deli 512-555-2533 Produce512-555-2544

If only one record satisfies the search terms at step 100, then at step102 directory assistance system 10 checks to see if the returned recordis on any non-publication lists and if not, provides the telephonenumber for the returned record to the caller. In addition to thetelephone number, directory assistance system 10 may also provide thename and address of the returned record to the caller. For instance, ifthe caller wanted the number for “Bob's Wholesale Tools,” when providingthe telephone number directory assistance system 10 may provide thetelephone number by stating, “The telephone number for Bob's WholesaleTools at 2341 54^(th) Street is 555-1475.” Providing the name andaddress in addition to the telephone number implicitly confirms to thecaller that he is receiving the correct telephone number especially insituations where the caller has not provided any address information.Furthermore, it provides assurances to the callers who are sometimesuneasy in dealing with fully automated systems because they know theyare getting the correct telephone number for the right location.

If at step 100 search engine 32 returns more than one record satisfyingthe search terms, then the process continues to FIG. 3 where directoryassistance system 10 automatically disambiguates the returned records.This process is described below in greater detail with respect to FIGS.3, 4, and 5.

If at step 100 search engine 32 finds zero records satisfying the searchterms, then search engine 32 accesses and searches one or more namedatabases in order to locate a name corresponding with the name providedby the caller at step 96. The name databases include names only and donot include any telephone listing information such as telephone numberor address. Such telephone information changes frequently and thereforeit is very expensive to constantly update databases containing bothnames and telephone information. But name information changes lessfrequently and therefore it is relatively inexpensive to frequentlyupdate the name information in the name databases. Search engine 32utilizes the name databases as grammars when recognition of the namesupplied by the caller fails using FRL database 22.

At step 104 search engine 32 accesses a database containing onlybusiness names (and not business listings) and searches for any businessnames satisfying the name provided by the caller at step 96. If searchengine 32 locates a business name matching the name provided by thecaller, then the process proceeds to step 110. If search engine 32 doesnot find any business names matching the name provided by the caller,then at step 106 search engine accesses a database containing onlygovernment names (and not government listings) and searches for anygovernment names that match the name provided by the caller at step 96.If search engine 32 locates a government name that matches the nameprovided by the caller, then the process continues to step 110. But ifsearch engine 32 does not locate any government names matching the namesupplied by the caller, then at step 108 search engine 32 accesses adatabase containing only residential names (and not residentiallistings) and searches for any residential names that matches the nameprovided by the caller. If search engine 32 locates a residential namethen the process continues to step 110. If search engine 32 does notlocate a residential name that matches the name provided by the callerat step 108, then the call defaults to a live operator where theprocedure for defaulting to a live operator is described in greaterdetail below.

At step 110, search engine 32 has located a name that matches the nameprovided by the caller at step 96. Depending on the desired level ofautomation, at step 110 the caller may default to a live operator orcontinue interacting with directory assistance system 10. If the callerswitches to the live operator, then the live operator assists the callerin locating the desired telephone number and such procedure is describedbelow.

If the caller does not switch to the live operator, then at step 112search engine 32 accesses and searches D1 database 20 using the namelocated at step 104, 106, or 108 as the search term. D1 database 20includes the majority of telephone listings and not just the mostfrequently requested listing like FRL database 22 so when a search ofFRL database 22 does not return any records, a search of D1 database 20has a greater probability of returning a record. At step 114, searchengine 32 determines how many returned records satisfy the search term.If the search of D1 database 20 returns no returned records, then thecall defaults to the live operator and the operator assists the calleras described below. If search engine 32 locates more than one returnedrecord, then directory assistance system 10 automatically disambiguatesthe returned records as described in FIGS. 3, 4, and 5. If search engine32 locates one returned record, then at step 116 directory assistancesystem 10 provides the telephone number to the caller in the same manneras described above so long as the returned record is not listed on anon-publication list.

If at step 94 directory assistance system 10 follows the RBG route, thenat step 118 directory assistance system 10 prompts the caller todetermine if the telephone number the caller is seeking is for abusiness, a residence, or a government office and the caller provides anutterance in response to the prompt. If the caller utters “business,”then at step 120 directory assistance system 10 prompts the caller forthe business name. If the caller utters “government,” then at step 122directory assistance system 10 prompts the caller for the governmentname. If the caller utters “residential,” then at step 124 directoryassistance system 10 prompts the caller for the first and last name ofthe person for whom the caller seeks the telephone number.

Where the caller desires a business or government number, then at step125 search engine 32 accesses FRL database 22 and searches FRL database22 for the business or government name provided in step 120 or 122. Atstep 125 search engine 32 searches only a partition of FRL database 22.If the caller desires a telephone number for a business, then searchengine 32 searches only the business partition of FRL database 22. Ifthe caller desires a telephone number for a government entity, thensearch engine 32 searches only the government partition of FRL database22. If the caller seeks a residential telephone number, then the processcontinues to step 110 where the caller is either transferred to a liveoperator or remains in the automated system where search engine 32accesses and searches D1 database 20 at step 112 for the first and lastname provided by the caller at step 124. The caller then continues tostep 114 as described above. In alternate embodiments, FRL database 22includes telephone numbers for residential telephone numbers in additionto business and government listings and a search for the residentialfirst and last name may also be performed in FRL database 22 at step 125instead of D1 database 20 at step 112.

Search engine 32 searches FRL database 22 for the entity type and nameprovided by the caller. At step 126, search engine 32 determines howmany returned records from FRL database 22 satisfy the search terms. Ifsearch engine 32 locates zero returned records, then the processcontinues to step 110 as described above. If search engine 32 locatesmore than one returned record, then directory assistance system 10automatically disambiguates the returned records as described withrespect to FIGS. 3, 4, and 5. If search engine 32 locates one returnedrecord satisfying the search terms, then at step 128 directoryassistance system 10 provides the telephone number and correspondinginformation to the caller unless the returned record is listed on anon-publication list.

FIGS. 3, 4, and 5 illustrate a method for automated disambiguation whensearch engine 32 locates more than one returned record satisfying thesearch terms. FIG. 3 depicts a flow diagram of the method for automateddisambiguation in greater detail. FIG. 4 illustrates an example flowdiagram of a method for automated disambiguation by record name. FIG. 5depicts an example flow diagram of a method for automated disambiguationby record address.

There are many different forms or types of records each having one ormore data fields. One record type is a stand-alone or straight linerecord which includes a name (first and last), address, and telephonenumber. An example stand-alone record is “Smith, John, 1213 Main Street,512-555-1234.” For the above record, the name data field is “Smith,John” and the address data field is “1213 Main Street.” Morespecifically, “Smith” is the Namel1data field which is for the familyname on a residential record and “John” is the Name2 data field which isfor the given name on a residential record. Another record type is astraight line under set record which includes both a parent record andone or more child or subordinate records where both the parent recordand the child records each have a telephone number. An example straightline under set record is as follows:

Johnson Auto Mart 2715 N. Umbridge 512-555-8700 Sales 512-555-8710Service 512-555-8720 Trucks 512-555-8730 Used Cars 2750 N. Umbridge512-555-8740where “Johnson Auto Mart” is the parent record and “Sales,” “Service,”,“Trucks,” and “Used Cars” are the child or subordinate records. Yetanother type of record is a caption set record which includes both aparent record and one or more subordinate records but the parent recorddoes not have a telephone number associated with it and each subordinaterecord does have a telephone number. An example caption set record is asfollows:

Smith Foods Store No. 1  125 Main Street 512-555-8500 Store No. 2 7865Pine 512-555-9514 Store No. 3 7895 N. Research 512-555-7532

The records are analyzed based on hierarchical levels. The stand-aloneand parent level is referred to as Level 0. The first child orsubordinate level is Level 1 and a subordinate record of a subordinaterecord is referred to as Level 2. Records at the same hierarchical levelare referred to as peer records while peer records that have the sameparent record are sibling records. At Level 0, peer records are acombination of stand-alone records and parent records. For the purposesof automated disambiguation, a threshold level or tier may need to beestablished whereby returned records having a hierarchy level higherthan the threshold level or tier will not be subject to the automateddisambiguation. For the embodiment shown in FIG. 3, the threshold levelhas been set to three levels or tiers of record hierarchy. Shown beloware three sample records illustrating the three tiers of records.

Tier One Parent Child 1 Child 2 Child 3 Child 4 Tier Two Parent Child 1Subordinate 1.1 Subordinate 1.2 Child 2 Subordinate 2.1 Subordinate 2.2Tier Three Stand-Alone 1 Stand-Alone 2 Parent 1 Child 1.1 Subordinate1.1.1 Child 1.2 Subordinate 1.2.1 Subordinate 1.2.2 Parent 2 Child 2.1Child 2.2 Subordinate 2.2.1 Subordinate 2.2.2 Child 2.3 Subordinate2.3.1With respect to disambiguation and the three levels or tiers,disambiguation occurs first among the parent or stand-alone level, nextamong the child level, and last among the subordinate level. Inalternate embodiments, the number of levels of record hierarchy may beless than three or more than three. The addition of a tier or levelrequires an additional dialogue or prompt between directory assistancesystem 10 and the caller and the caller's satisfaction decreases witheach additional prompt because the caller is spending longer than thecaller desires to spend interacting with an automated system.

For discussion of FIGS. 3, 4, and 5, assume that the caller is seekinginformation regarding Johnson Auto Mart. Search engine 32 has performeda search of FRL database 22 and/or D1 database 20 using “Johnson AutoMart” as the search term and returned the following returned records:

Johnson Auto Mart 2715 N. Umbridge 512-555-8700 Sales 512-555-8710Service 512-555-8720 Trucks 512-555-8730 Used Cars 2750 N. Umbridge512-555-8740 Johnson Auto Mart  325 E. Beanna 512-555-9600 Parts512-555-9640 Service 512-555-9630

The automated disambiguation strategy takes into account thehierarchical structure and relationships of and among the returnedrecords. Starting at the lowest level and continuing throughsuccessively higher levels, directory assistance system 10 anddisambiguation engine 34 disambiguate among returned records either by aname field or an address field.

When automatically disambiguating between more than one returned record,disambiguation engine 34 first determines which one of the stand-aloneand parent (Level 0) records is desired by the caller. If the caller'starget is a parent record having more than one child record,disambiguation engine 34 then selects the child and finally the child'ssubordinate record if there is one.

Disambiguation engine 34 attempts to disambiguate a set of returnedrecords by the name field provided each of the returned records have aname and that name is unique. If each name is not unique, thendisambiguation engine 34 disambiguates the returned records using theaddress data field using street name or street name and building numberif each street name is not unique. Returned records where the name datafield identifies the entity only by store number are not used so thatdisambiguation would first be by address.

When search engine 32 returns more than one returned record at step 100,114, or 126, the process continues to step 150 with automateddisambiguation. At step 150, disambiguation engine 34 takes thehierarchical level of the topmost record as the initial level (Level 0)on which to disambiguate returned records. For example, disambiguationengine 34 takes “Johnson Auto Mart” as Level 0. In addition,disambiguation engine 34 also checks each returned record to see if anytelephone numbers are flagged as the main telephone number. At step 152,disambiguation engine 34 scans each of the returned records in order todetermine if the first returned record stands alone or has peers. Ifthere is more than one record at this level, then the process continuesto step 154 where the loop count is incremented by one. For example,there are two returned records at Level 0 so the process continues tostep 154. If search engine 32 had only returned the first Johnson AutoMart record, then at step 152 the process would continue to step 158. Atstep 156 disambiguation engine 34 checks to see if the loop countexceeds four and if it does, the call defaults to a live operator. Butif the loop count does not exceed four, then the process continues tostep 160.

At step 160, disambiguation engine 34 checks each returned record forparticular record information and if found, omits the particular recordinformation from the returned record. For example, disambiguation engine34 removes from the returned records listings within the returnedrecords such as “Fax No.,” “If No Answer Dial,” “If Busy Dial,”“Toll-Free Dial,” or any other appropriate extra listing information.Disambiguation engine 34 checks each record for professional designationor name information that indicates a medical or emergency responsepersonnel or facility and does not omit the above telephone numbers forthose records. At step 162 disambiguation engine 34 determines ifomitting returned record information at step 162 reduces the number ofreturned records to one. If the number of records is reduced to one atstep 162, then disambiguation engine 34 selects the remaining returnedrecord at step 164 and the process continues to step 158.

If the number of returned records is not reduced to one at step 162,then at step 166 disambiguation engine 34 checks each returned record todetermine if each returned record has a name in the name data field. Ifeach returned record does not have a name in the name data field, thenthe process continues to step 184. If each returned record does have aname, then at step 168 disambiguation engine 34 checks to see whathierarchical level the returned records are at. If the level is Level 0,then the process continues to step 172 . Given the example of JohnsonAuto Mart, the hierarchical level is Level 0. If the level is greaterthan Level 0, the process continues to step 170 where disambiguationengine 34 checks each name to determine if the name is an allowable namefor disambiguation. Some records include in the name data field a “StoreNo. XX” or “No. XX” as the name and since generally most callers do notknow individual store numbers, it would not be very helpful to thecaller to disambiguate by store number. Therefore if the name datafields contain non-allowable names such as “Store No.,” the processcontinues to step 184 where disambiguation engine 34 disambiguates thereturned records using address or department information.

When all names are allowable, at step 172 disambiguation engine 34determines if the name in the name data field is unique for eachreturned record. If each name is unique, then disambiguation engine 34proceeds to disambiguate using the name data field as shown in FIG. 4.If each record does not have a unique name at step 172, as with JohnsonAuto Mart, then the process continues to step 174 where disambiguationengine 34 checks the returned records having identical names in order todetermine if the returned records having identical names are duplicaterecords. If the returned records having identical names are duplicaterecords, then disambiguation engine 34 retains the first record anddiscards all other duplicate records. For Johnson Auto Mart the returnedrecords are not duplicative because even though the records have thesame name, the records have different addresses and different phonenumbers. At step 176, disambiguation engine 34 checks the number ofreturned records to determine if the duplicative actions taken at step174 have reduced the number of returned records to one. If the number ofreturned records is reduced to one, then at step 180 disambiguationengine 34 selects the remaining returned record and the processcontinues to step 158.

If there are still more than one returned records at step 176, at step178 disambiguation engine 34 checks again to see if the returned recordseach have a unique name. If the returned records have unique names, thenthe process continues to FIG. 4 where disambiguation engine 34disambiguates using the name data field. With Johnson Auto Mart thereturned records do not have unique names so the process continues tostep 182 where disambiguation engine 34 determines if any name occursmore than once among the current set of returned records. If there ismore than one name at step 182, then disambiguation engine 34disambiguates among the returned records using the name data field asshown in FIG. 4.

For Johnson Auto Mart there is not more than one name at step 182, sothe process continues to step 184 where disambiguation engine 34 checkseach returned record to determine if each returned record has anaddress. If each returned record does not have an address, then at step184 the call defaults to a live operator. But if each returned recordhas an address, then at step 186 disambiguation engine 34 determines ifeach returned record has a unique address. Disambiguation engine 34determines if each address is unique by looking at both the street nameand building number of the address data field. For Johnson Auto Mart,each returned record has a unique address because one Johnson Auto Martis located at 2715 N. Umbridge and the other one is located at 325Beanna. Therefore, the process continues to step 194 of FIG. 5. If thereturned records do not have unique addresses at step 186, then at step188 disambiguation engine 34 checks each returned record to determine ifthe returned records having the same address are duplicates and cantherefore be eliminated as was done above with respect to duplicatenames. At step 190 disambiguation engine 34 determines the number ofreturned records remaining after eliminating any duplicate returnedrecords if only one returned record is left, disambiguation engine 34selects that returned record at step 192. If at step 190 more than onereturned record remains, then the process continues to step 194 of FIG.5.

At step 194 disambiguation engine 34 loads one or more grammars forspeech recognition into directory assistance system 10 for the locationsfor each returned record at the current hierarchical level. The grammarsallow for an ASR engine to recognize the correct response to a promptprovided by the caller. For instance, if the caller is to select abusiness on Elm Street or Main Street by speaking the desired streetname, the grammars allow the ASR engine to determine if the callerutters “Elm” or “Main.” Disambiguation engine 34 checks each of thereturned records for a main number at step 196 and if disambiguationengine 34 locates a main number, the phrase “main number” is also addedto the grammars at step 198 so that the ASR engine will correctlyrecognize “main number” if the caller requests the main telephonenumber.

Disambiguation engine 34 begins playing the disambiguation prompts tothe caller at step 200. At step 200, disambiguation engine 34 checks thenumber of returned records at the current hierarchical level and at step202 checks to determine if the returned records are on the same streetor are on different streets. If the returned records are on differentstreets, then at step 206 disambiguation engine 34 checks thehierarchical level and proceeds to step 208 if the hierarchical level isLevel 0 or Level 1. If the returned records are on the same street, thenat step 204 disambiguation engine 34 plays a prompt and the caller hearsa prompt such as, “There are two locations on Main Street.” If thereturned records are on different streets, as with Johnson Auto Mart,then at step 208 disambiguation engine 34 plays a prompt and the callerhears, “There are two locations for Johnson Auto Mart.” At step 210 ifthe caller provides any response or utterance other than an affirmingresponse (“Yes”) to the playing of the entity name, here Johnson AutoMart, the call defaults to a live operator.

After step 204 and if the caller is silent or affirms at step 210, theprocess continues to step 212 where disambiguation engine 34 determinesthe number of returned records to disambiguate. How disambiguationengine 34 presents and disambiguates the returned records to the callerdepends on the number of returned records using a low threshold and ahigh threshold. In the embodiment shown in FIG. 5 (as well as FIG. 4),the high threshold is set at five returned records and the low thresholdis set at two or three returned records. Switch 214 allowsdisambiguation engine 34 to vary the low threshold. In the exampleembodiment disambiguation engine 34 can vary the low threshold betweentwo and three. In alternate embodiments, the high threshold may behigher or lower than five and the low threshold maybe lower than two orhigher than three.

If there are more than five returned records at step 212, thendisambiguation engine 34 prompts the caller for additional informationat step 216. Since disambiguation is occurring by address, at step 216disambiguation engine 34 prompts the caller for the street name for thelisting the caller is desiring. For example, if there are six listingsfor Bob's Wholesale Tools and the caller wants the telephone number forthe location on Elm Street, at step 216 disambiguation engine 314prompts the caller for the street name and the caller responds with “ElmStreet.” At step 218 disambiguation engine 34 receives the additionalinformation from the caller utilizing speech recognition and at step 220determines if the street name provided by the caller is a uniquelocation corresponding with one of the returned records.

If the street provided by the caller is unique, then disambiguationengine 34 selects the returned record having the street name matchingthe street name provided by the caller at step 192. If the street nameprovided by the caller is not a unique location among the returnedrecords, then the process returns to step 194 and the steps followingstep 194 are repeated with respect to the street name provided by thecaller until there is a successful disambiguation or until the calldefaults to the operator. If the street name provided by the caller atstep 218 does not match any of the street names of the returned records,the process continues to step 222 where disambiguation engine 34 checksto see if there is a main telephone number. If there is a main telephonenumber, disambiguation engine 34 provides the main telephone number tothe caller at step 224 so long as the main telephone number is not on anon-publication list. If there is not a main telephone number at step222, then the call defaults to a live operator.

If the number of returned records at step 212 is between the lowthreshold and the high threshold, then at step 226 disambiguation engine34 provides to the caller a pick list of the locations that were loadedin the grammar. Disambiguation engine 34 plays a prompt listing the nameand address for each returned record and prompts the caller to pick thedesired returned record when the caller hears it by saying “that one.”The caller picks the desired returned record at step 228. If the callerhears the desired returned record in the pick list, the processcontinues to step 192 where disambiguation engine 34 selects thereturned record selected by the caller at step 228 . If the caller doesnot hear the desired returned record in the pick list, the call defaultsto a live operator.

For instance, if there are four returned records for John Smith,disambiguation engine 34 plays the following pick list for the caller:“There are four locations for John Smith. When you hear the one youwant, say ‘that one:’ on Cedar {pause}, on Shoal Creek {pause}, on30^(th) Street {pause}, or on Congress {pause}.” If the caller wantsJohn Smith on Cedar, then after the caller hears “John Smith on Cedar”the caller says “that one” and does not hear the rest of the choices inthe pick list. The caller may also say “on Cedar” or “the first one”instead of “that one.”

If the number of returned records at step 212 is below the lowthreshold, then at step 230 disambiguation engine 34 provides the callera direct choice. For the Johnson Auto Mart example, disambiguationengine 34 plays the following prompt: “Do you want the one on Umbridgeor on Beanna” and the caller responds with either “Umbridge” or“Beanna.” At step 232 the caller selects the desired returned record bystating the street name of the one the caller wants. When the callercorrectly selects a returned record, disambiguation engine 34 selectsthat returned record at step 192. For example, the caller is looking forthe phone number for the Johnson Auto Mart on Umbridge so in response tothe prompt, the caller says “Umbridge” and disambiguation engine 34selects the returned record for Johnson Auto Mart on Umbridge. If thecaller does not hear the location that the caller desires or the calleris not aware of more than one location and therefore does not know whichlocation to pick at step 232, then at step 222 disambiguation engine 34checks to see if there is a main telephone number and provides the maintelephone number to the caller at step 224. Since there is no maintelephone number for Johnson Auto Mart, if the caller fails thedisambiguation at step 232, the call defaults to a live operator at step222.

Once disambiguation engine 34 selects a returned record, the processreturns to step 158. At step 158 disambiguation engine 34 determines ifthe selected returned record includes any subordinate records. If thereturned record has no subordinate records, then the process continuesto step 234. But if the returned record has one or more subordinaterecords, as with Johnson Auto Mart on Umbridge, the process continues tostep 236 where disambiguation engine 34 determines if the parent recordhas an associated telephone number. If the parent record does not have atelephone number, then the process continues to step 242. If the parentrecord has a telephone number, as with Johnson Auto Mart, then at step238 disambiguation engine 34 determines if a main telephone number hasalready been flagged for the selected returned record. If no main numberhas been flagged, then at step 240 disambiguation engine 34 flags thetelephone number of the parent record as the main number.

Once the main telephone number has been identified and/or flagged, atstep 242 disambiguation engine 34 increments the hierarchical level onelevel, in this example to Level 1, and at step 244 disambiguation engine34 determines if there are more than one records at hierarchical Level1. If there is only one record at this hierarchical level, then at step246 disambiguation engine 34 selects this returned record and theprocess returns to step 158. If there is more than one record at step244, as with Johnson Auto Mart, then at step 248 disambiguation engine34 determines if each of the subordinate records at this level have thesame telephone number. If the subordinate records all the have the sametelephone number, then disambiguation engine 34 flags the subordinaterecords as having the same telephone number and the process continues tostep 234. If at step 248 the subordinate records do not have the sametelephone number, then the loop count is incremented and checked atsteps 154 and 156 and the process continues to step 160 where step 160through step 166 are repeated as described above.

For Johnson Auto Mart on Umbridge, disambiguation engine 34 determinesthat all the returned records have names at step 166, the names areallowable at step 170, and that the names are all unique at step 172.Since the names are all unique at step 172, the process continues tostep 252 and FIG. 4.

At step 252 disambiguation engine 34 determines the current hierarchicallevel. If the current level is Level 0, then at step 256 disambiguationengine 34 loads the grammar with the names and the addresses for thepeer returned records. If the current level is Level 1, as with JohnsonAuto Mart, disambiguation engine 34 loads the grammar with only thenames of the peer returned records at hierarchical Level 1 at step 254.At step 258 disambiguation engine 34 checks for a main telephone numberand adds the phrase “main number” to the grammars at step 260 if thereis a main telephone number. There is a main telephone number for JohnsonAuto Mart which is flagged as the main telephone number at step 240.

Disambiguation engine 34 again determines the hierarchical level at step262 and if the level is not Level 0, disambiguation engine 34 checks forany indicators in the name data field of the returned records at step264. The “Sales,” “Service,” Trucks,” and “Used Cars” names includedepartment indicators with respect to the name data field so that atstep 266 disambiguation engine 34 plays the following prompt to thecaller: “There are four departments listed.” The name field indicatorallows disambiguation engine 34 to know whether the returned records arefor department names, individuals first or last names, business names,or any other appropriate name indication. Because the name indicator isdepartment for Johnson Auto Mart, disambiguation engine 34 uses“department” in the prompt at step 266. Because the loop count isgreater than one and the caller has already been through onedisambiguation to select the location and is aware of the returnedrecord entity name, there is no need to provide the entity name at step270.

Once disambiguation engine 34 plays the prompt and as long as the callerdoes not respond (implicit confirmation) or affirms (“Yes”), the processcontinues to step 272. If the caller negates (“No”) or says anythingelse (out of grammar) which would cause directory assistance system 10to look up a wrong listing, the call defaults to a live operator.

At step 272, disambiguation engine 34 determines the number of returnedrecords and disambiguates in the same manner as described with respectto steps 212 through 232. If the number of returned records is below thelow threshold determined using switch 275, then at step 274disambiguation engine 34 provides the caller a direct choice between thereturned records. If the caller hears the desired returned record atstep 274 and successfully selects it at step 276, then disambiguationengine 34 selects the desired returned record at step 193. If the callerdoes not successfully select the desired returned record at step 276,then at step 278 disambiguation engine 34 checks for a main telephonenumber and provides the main telephone number to the caller at step 280if there is a main telephone number or defaults to a live operator ifthere is not a main telephone number.

If the number of returned records at step 272 is greater than the highthreshold, then at steps 282 and 284 disambiguation engine 34 requestsadditional information from the caller in order to determine whichreturned record is desired by the caller. If the caller providesadditional information (such as one of the names loaded in the grammar)that allows disambiguation engine 34 to determine which returned recordis desired by the caller at step 284, then disambiguation engine 34selects the desired returned record at step 193. If the caller does notprovide additional information that allows disambiguation engine 34 toselect the desired returned record at step 284, disambiguation engine 34checks for a main telephone number at step 278 and provides the maintelephone number if there is one at step 280 or defaults to a liveoperator if there is not a main telephone number.

If the number of returned records is between the low and the highthreshold, then disambiguation engine 34 provides a pick list based onthe names that were loaded in the grammar. At step 286 disambiguationengine 34 plays each name followed by a pause. The pause allows for timefor the caller to select the desired returned record. For Johnson AutoMart for example, disambiguation plays the following prompt: “When youhear the one you want, say ‘that one:’ Sales {pause}, Service {pause},Trucks {pause}, or Used Cars {pause}.” At step 288 the caller respondswith “that one” when the caller hears the department that the caller isinterested in. If the caller wants the telephone number for service,then after the caller hears “Service,” the caller says “that one,”“Service,” or “the second one.” Disambiguation engine 34 recognizes thecaller's response and selects the returned record at step 193correlating to the caller's response. If the caller does notsuccessfully pick a returned record from the pick list, the calldefaults to a live operator.

Once disambiguation engine 34 selects the desired returned record atstep 193, the process returns to step 158 where disambiguation engine 34determines if the selected returned record has any subordinate records.If the caller desired the number for the Service Department at JohnsonAuto Mart then that returned record has no subordinate records and theprocess continues to step 234.

At step 234, disambiguation engine 34 determines if there is a parentrecord for the selected returned record and if so, if the parent recordis flagged as the main telephone number. With Johnson Auto Mart, theparent record is flagged as the main telephone number so at step 290disambiguation engine 34 checks if all the subordinate records have thesame telephone number. If the subordinate records all have the sametelephone number, disambiguation engine 34 offers the caller the mainnumber at step 292 and plays the main telephone number for the caller(if not on a non-publication list) at step 294 if the caller respondsthat he wants the main telephone number. If the caller does not want themain telephone number at step 292, then disambiguation engine 34provides the telephone number selected at step 193 to the caller atsteps 296 and 298.

If at step 290 the subordinate records do not have the same telephonenumber, as with Johnson Auto Mart, then at step 300 disambiguationengine 34 determines if the number of subordinate records is greaterthan one. If there are more than one subordinate records at step 300,then at step 302 disambiguation engine 34 provides the telephone numberto the caller for the returned record selected at step 193 as long thereturned record is not on a non-publication list. If there is only onesubordinate record at step 300, at step 304 disambiguation engine 34offers the caller the option of the main telephone number or thetelephone number for the one subordinate record. If the caller wants themain telephone number, disambiguation engine 34 plays the main telephonenumber at step 306 so long as it is not on a non-publication list.Disambiguation engine 34 plays the subordinate record telephone numberat step 302 if the caller does not want the main telephone number atstep 304.

The disambiguation process occurs instantaneously with respect to thecaller. When the caller calls directory assistance and states that hewants the number for Johnson Auto Mart, the next prompt the caller hearsis “There are two locations for Johnson Auto Mart. Do you want the oneon Umbridge or on Beanna?” When the caller responds “Umbridge,” the nextprompt the caller hears is “There are four departments listed. When youhear the one that you want, say ‘that one:’ Sales {pause}, Service{pause}, Trucks {pause}, or Used Cars {pause}.” The caller responds“that one” after hearing “Service” and the next prompt the caller hearsis “The telephone number for the Service department for Johnson AutoMart on 2715 N. Umbridge is 512-555-8720. ” When providing the desiredtelephone number and corresponding location, the building number for thelocation may be included if there are two or more locations on the samestreet.

Despite the ease of use of directory assistance system 10 and theautomated disambiguation strategy, there are instances when a callerexperiences difficulty in dealing with directory assistance and needsthe assistance of a live operator. Directory assistance system 10incorporates automated procedures for defaulting to a live operator whena caller experiences particular errors within directory assistance.

Throughout all the process described above, track engine 36 tracks andstores in database 24 each utterance spoken by the callers interactingwith directory assistance. In addition, error engine 38, in associationwith track engine 36, determines when an utterance spoken by the callerinitiates an error condition. Upon the occurrence of the errorcondition, error engine 38 puts the caller on hold, connects to a liveoperator, plays for the operator the utterance causing the errorcondition (the error utterance) and the utterance preceding the errorutterance (the preceding utterance), and then the operator is connectedto the caller.

As shown in FIGS. 3, 4, and 5, there are instances when the caller failsto successfully respond to a disambiguation prompt and the call defaultsto the operator. In addition to those instances, error engine 38 alsoallows for the call to default to the operator when the caller fails tosuccessfully reply to any prompt at any stage within directoryassistance.

Directory assistance system 10 utilizes speech recognition to interactwith the callers. When a caller provides input using speech, the speechrecognition software recognizes the caller's utterance with a certaindegree or level of confidence. Caller's utterances can be recognizedwith a high level of confidence, a medium level of confidence, and a lowlevel of confidence. Unique methods may be used to establish andmaintain the threshold levels for what is the high confidence level, themedium confidence level, and the low confidence level. Callers'utterances recognized with a medium or low level of confidence may beenough for error engine 38 to transfer the callers to the operator. Whentrack engine 36 tracks and stores each utterance, track engine 36 mayalso store the confidence level with which the utterance was recognized.

When the caller provides an utterance, track engine 36 stores theutterance in database 24 and error engine 38 monitors the utterance todetermine if the utterance causes an error condition. An error conditionis an event causing an error in interacting with directory assistanceand results in the caller transferring to a live operator. Error engine38 has different requirements for what types of caller utterances willcause an error condition and caller utterances in response to a promptmay be in error for different reasons. For example, a caller might saynothing in response to a prompt (TO—no speech time out), begin speakingbefore the prompt is done playing (STE—spoke too early), speak for solong that there is too much speech for the speech recognition softwareto recognize (TMS—too much speech), say something that the speechrecognition software cannot understand (OOG—out of grammar), or try torespond using touch-tone input instead of speaking (TTD—touch tonedigit). An error condition occurs on the occurrence of any permutationof two TO or STE results or on the single occurrence of a TMS, a TTD, oran OOG result. For example, directory assistance system 10 prompts thecaller for residential, business, or government and the caller pressesbuttons trying to spell business in response to the prompt. Error engine38 recognizes this as a TTD result and defaults the caller to theoperator. In alternate embodiments, additional events or conditions aswell as various permutation and numbers of errors may cause an errorcondition.

When the caller satisfies an error condition either as described aboveor within the disambiguation process as shown in FIGS. 3, 4, and 5, atstep 130 error engine 38 populates operator screen 30 with the caller'sutterances spoken before the error utterance that were recognized withhigh confidence. For example, at step 120 directory assistance system 10cannot understand the caller's utterance in response to the prompt forbusiness name. Error engine 38 recognizes this as a condition satisfyingan error condition and therefore transfers the caller to the operator.But prior to the error at step 120, the caller had successfullyinteracted with directory assistance system 10 and provided localityinformation at step 92 and “business” at step 118 . Track engine 36stored the caller's utterance to the locality prompt and the RBG prompt.Error engine 38 accesses database 24 and populates city field 40 andstate field 42 with the information provided by the caller's utterances.Because the caller had made it to step 120 in the automated system, allthe caller's utterances up to the error had to have been recognized witha high confidence level. By populating operator screen 30 withinformation from the caller's utterances recognized with highconfidence, the operator knows some of what the caller is seeking anddoes not have to ask the caller to repeat what the caller has alreadysuccessfully provided.

In addition to populating operator screen 30 with information from theutterances recognized with high confidence, at step 132 error engine 38plays to the operator the preceding utterance, which was recognized withhigh confidence and no error, and the error utterance causing the errorcondition. Playing of both the error utterance and the precedingutterance allows the operator to understand the intention of thecaller's inquiry and where the inquiry went wrong without having tore-ask the caller numerous questions the caller may have alreadyanswered.

Error engine 38 does not provide the immediately preceding utterance ifthe preceding utterance is a generic utterance. A generic utterance isan utterance that has little meaning to the operator outside of theprompt to which the generic utterance was in response to. Genericutterances include such utterances as “that one, “yes,”, or “no” whenfollowing a pick list or a “which one” prompt or in response to aconfirmation prompt. When the immediately preceding utterance is ageneric utterance, error engine 38 omits the generic utterance and playsto the operator the error utterance and the most immediately precedingutterance that is not a generic utterance. For instance, the caller isprompted for the locality and responds “Austin.” The following promptasks the caller to say “yes” if Austin is the desired locality. Thecaller says “yes” and the caller is prompted for business, residential,or government. The caller responds “I need a plumber.” The caller'sresponse to the RBG prompt is in error and the “I need a plumber”utterance is the error utterance. The utterance preceding the errorutterance is “yes” but since that is a generic utterance, error engine38 goes back one utterance to “Austin” and plays to the operator:“Austin. I need a plumber.”

For an error condition occurring during disambiguation for a pick list,error engine 38 populates operator screen 30 with the search termsprovided by the caller and omits and does not play for the operator the“that one” utterance in response to the pick list because it would bemeaningless to the operator. For a default during disambiguation foreither a direct choice or a request for additional information, errorengine 38 populates operator screen 30 with the search terms and playsthe error utterance and preceding utterance because both of thoseutterances will have meaning to the operator since those utterances willnot be generic utterances.

In addition to omitting generic utterances, error engine 38 can alsocombine two utterance into one utterance for operator playback purposes.For example, a prompt may ask for the city, and another prompt for thestate. The caller replies with two utterances—one for the city and onefor the state. If the both the city and state utterances are recognizedwith high confidence and no error, then error engine 38 may combine thecity and state utterances into one utterance when playing backutterances to the operator on the occurrence of an error condition. Forexample, the caller is prompted for the city and replies “Austin” and isprompted for the state and replies “Texas.” The caller is next promptedfor the name and the caller replies “business.” The error utterance is“business” and error engine 38 combines the “Austin” utterance with the“Texas” utterance into one utterance and plays “Austin, Texas, Business”to the operator.

In addition to city and state utterances, error engine 38 may alsocombine a first name utterance and a last name utterance into a singleutterance for playback to the operator. For instance, if the callerprovides the last name and then the first name in two separateutterances and then an error occurs on the next utterance, error engine38 plays to the operator the combined first and last name as thepreceding utterance.

Before error engine 38 begins to play the error utterance and thepreceding utterance to the operator, error engine 38 plays a first toneto the operator to alert the operator that the error utterance and thepreceding utterance are preparing to play. Error engine 38 plays asecond tone when the error utterance and the preceding utterance finishplaying and when error engine 38 is preparing to bring the caller onlinewith the operator. The second tone signals the operator to beginspeaking with the caller so that caller does not think the line is deadand therefore hangs up.

Once error engine 38 populates operator screen 30 and plays the errorutterance and the preceding utterance for the operator, at step 134 thecaller is brought online with the operator and the operator and callercontinue the dialogue that the caller started with the automateddirectory assistance. Before error engine 38 connects the caller to theoperator, error engine 38 highlights the information fields 40–52 inoperator screen 30 that error engine 38 populated with information fromthe caller's utterances. Error engine 38 also highlights the informationfields 40–52 in operator screen 30 that need to be filled in withinformation from the caller before the operator can perform a search forthe desired returned record and telephone number. Therefore, theoperator immediately knows what additional information to elicit fromthe caller. The populated operator screen 30 allows the operator to knowwhat questions the caller has already answered and prevents the operatorfrom asking the caller to repeat answers which callers typically hate todo. In addition, playing the error utterance and the preceding utteranceallows the operator to know what the caller is trying to accomplish andwhere the caller ran into trouble. Because the operator knows all thisbefore the caller connects with the operator, less time is required inthe caller/operator dialogue because the operator knows exactly whatquestions to ask and does not have to repeat any questions that havealready been successfully answered.

When the operator has gathered from the caller all the necessaryinformation to perform a search, at step 136 the operator access andsearches D1 database 20 and locates zero or one or more returnedrecords. If the operator locates more than one returned record matchingthe search terms, the operator manually disambiguates at step 138 byasking the caller additional questions and the caller selects thedesired returned record. Once the caller has selected the desiredreturned record, at step 140 the operator provides the telephone numberto the caller as long as the returned record is not on a non-publicationlist.

For example, when a caller calls directory assistance wanting the numberfor Auto Tech, the caller is prompted for city locality and the callerresponds “Austin.” Track engine 36 stores “Austin” in database 24 . Thecaller is prompted for state locality, the caller replies “Texas,” andtrack engine 36 stores “Texas” in database 24 . The caller is thenprompted for business, residential, or government, the caller replies“business,” and track engine 36 stores “business.” The caller isprompted for the business name, the caller replies “Auto Tech,” trackengine 36 stores “Auto Tech,” and search engine 32 locates two returnedrecords for Auto Tech—one on Main Street and the other on Elm Street.The caller is offered a direct choice between “Main” and “Elm” and thecaller responds with “Oak Street.” Error engine 38 recognizes “OakStreet” as an error utterance and defaults the caller to the operator.But before the caller connects with the operator, error engine 38 playsto the operator “Auto Tech. Oak Street” and populates city field 40 with“Austin,” state field 42 with “Texas,” and business name field 48 with“Auto Tech.” Once the utterances have played and operator screen 30populated, the operator begins speaking with the caller and assistingthe caller with locating the desired telephone number.

Although the present invention has been described in detail, it shouldbe understood that various changes, substitutions and alterations can bemade hereto without the parting from the spirit and scope of theinvention as defined by the appended claims.

1. A method for the automated disambiguation of directory assistancesearch results utilizing speech recognition, the method comprising:prompting a caller for at least one search term; searching one or moredatabases for the search terms, the databases including a plurality ofrecords; returning a number of the records that satisfy the searchterms; determining if each of the returned records has a unique namedata field; automatically differentiating between the returned recordsbased on each of the unique name data fields; automaticallydifferentiating between the returned records based on an address datafield when each returned record does not have a unique name data field;providing a direct choice between the returned records when the numberof returned records is below a low threshold; providing a pick list ofthe returned records when the number of returned records is between thelow threshold and a high threshold; requesting additional informationwhen the number of returned records is above the high threshold;defaulting to an operator when the database search returns no returnedrecords; determining if the returned record is included in anon-publication list before providing the returned record to the caller;and providing a telephone number to the caller corresponding with areturned record selected by the caller.
 2. A method for the automateddisambiguation of search results, the method comprising: searching oneor more databases for one or more search terms, the databases includinga plurality of records; returning a number of the records that satisfythe search terms; automatically differentiating between the returnedrecords based on one or more data fields within each returned record;providing a direct choice between the returned records when the numberof returned records is below a low threshold; providing a pick list ofthe returned records when the number of returned records is between thelow threshold and a high threshold; and requesting additionalinformation when the number of returned records is above the highthreshold.
 3. The method of claim 2 further comprising defaulting to anoperator when the database search returns no returned records.
 4. Themethod of claim 3 wherein defaulting to the operator comprisespopulating an operator screen with one or more utterances provided by acaller.
 5. The method of claim 2 further comprising prompting one ormore callers for the search terms.
 6. The method of claim 2 wherein thedatabase comprises a frequently requested listings database.
 7. Themethod of claim 2 wherein the database comprises a D1 database.
 8. Themethod of claim 2 wherein automatically differentiating between thereturned records comprises determining if each of the returned recordshas a unique name data field.
 9. The method of claim 8 whereinautomatically differentiating between the returned records comprisesdifferentiating between the returned records based on each of the uniquename data fields.
 10. The method of claim 8 wherein automaticallydifferentiating between the returned records comprises differentiatingbetween the returned records based on an address data field when each ofthe returned records does not have a unique name data field.
 11. Themethod of claim 2 further comprising searching a D1 database if a searchof a frequently requested listings database returns no returned records.12. The method of claim 2 further comprising utilizing an automatedspeech recognition system to gather the search terms and provide thereturned records.
 13. The method of claim 2 wherein automaticallydifferentiating between the returned records comprises determining ifeach of the returned records includes one or more subordinate records.14. The method of claim 2 further comprising providing to a caller atelephone number corresponding to a returned record satisfying thesearch terms.
 15. The method of claim 14 wherein providing a telephonenumber comprises providing to the caller a name and an addresscorresponding to the telephone number.
 16. The method of claim 2 whereinproviding a direct choice between the returned records comprises:individually identifying each of the returned records; and prompting acaller to directly choose one of the identified returned record.
 17. Themethod of claim 2 wherein providing a pick list of the returned recordscomprises: providing a list of the returned records; and prompting acaller to select a desired returned record from the list of the returnedrecords when the caller hears the desired returned record.
 18. Themethod of claim 2 wherein requesting additional information comprisesprompting the caller to provide one or more additional search terms inorder to further limit the returned records.
 19. The method of claim 2further comprising determining if the returned record is included in anon-publication list before providing the returned record to a caller.20. A system for the automated disambiguation of search results, thesystem comprising: one or more databases including a plurality ofrecords; a search engine associated with the databases, the searchengine operable to search one or more of the databases for one or moresearch terms; and a disambiguation engine associated with the searchengine, the disambiguation engine operable to differentiate between oneor more returned records satisfying the search terms and automaticallydisambiguate the returned records based on the number of returnedrecords; wherein the disambiguation engine provides a pick list of thereturned records when the number of returned records is between a lowthreshold and a high threshold.
 21. The system of claim 20 wherein thedisambiguation engine provides a direct choice between the returnedrecords when the number of returned records is below a low threshold.22. The system of claim 20 wherein the disambiguation engine requestsadditional information when the number of returned records is above ahigh threshold.
 23. The system of claim 20 wherein the databasecomprises a frequently requested listings database.
 24. The system ofclaim 20 wherein the database comprises a D1 database.
 25. The system ofclaim 20 wherein the disambiguation engine is further operable todetermine if each of the returned records has a unique name data field.26. The system of claim 25 wherein the disambiguation enginedifferentiates between the returned records based on each of the uniquename data fields.
 27. The system of claim 25 wherein the disambiguationengine differentiates between the returned records based on an addressdata field when each of the returned records does not have a unique namedata field.
 28. The system of claim 20 wherein the search enginesearches a D1 database if the search engine locates no returned recordssatisfying the search terms in a frequently requested listings database.29. The system of claim 20 wherein the disambiguation engine is furtheroperable to provide to a caller a telephone number for a returned recordsatisfying the search terms.
 30. The system of claim 20 wherein thesearch engine is further operable to default to an operator when thesearch engine locates no returned records satisfying the search terms.31. The system of claim 20 wherein the disambiguation engine determinesif each of the returned records includes one or more subordinaterecords.
 32. The system of claim 20 wherein the disambiguation enginedetermines if the returned record is included in a non-publication listbefore providing the returned record to a caller.
 33. Software forautomating disambiguation of search results, the software embodied in acomputer-readable medium and operable to: search one or more databasesfor one or more search terms, the databases including a plurality ofrecords; return a number of the records that satisfy the search terms;automatically differentiate between the returned records based on one ormore data fields within each returned record; provide a direct choicebetween the returned records when the number of returned records isbelow a low threshold; provide a pick list of the returned records whenthe number of returned records is between the low threshold and a highthreshold; and request additional information when the number ofreturned records is above the high threshold.
 34. The software of claim33 further operable to default to an operator when the database searchreturns no returned records.
 35. The software of claim 34 whereindefaulting to the operator comprises populating an operator screen withone or more utterances provided by a caller.
 36. The software of claim33 further operable to prompt one or more callers for the search terms.37. The software of claim 33 wherein the database comprises a frequentlyrequested listings database.
 38. The software of claim 33 wherein thedatabase comprises a D1 database.
 39. The software of claim 33 whereinautomatically differentiating between the returned records comprisesdetermining if each of the returned records has a unique name datafield.
 40. The software of claim 39 wherein automaticallydifferentiating between the returned records comprises differentiatingbetween the returned records based on each of the unique name datafields.
 41. The software of claim 39 wherein automaticallydifferentiating between the returned records comprises differentiatingbetween the returned records based on an address data field when each ofthe returned records does not have a unique name data field.
 42. Thesoftware of claim 33 further operable to search a D1 database if asearch of a frequently requested listings database returns no returnedrecords.